package cn.iocoder.yudao.module.system.controller.admin.workorder.vo;

import cn.iocoder.yudao.module.system.controller.admin.workappendage.vo.WorkAppendageSaveReqVO;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;

import org.apache.ibatis.type.JdbcType;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 工单管理 Response VO")
@Data
@ExcelIgnoreUnannotated
public class WorkOrderRespVO {

    @Schema(description = "工单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7689")
    @ExcelProperty("工单id")
    private Long id;

    @Schema(description = "客户编号", example = "24736")
    @ExcelProperty("客户编号")
    private String customerId;
    @Schema(description = "计划号", example = "24736")
    @ExcelProperty("计划号")
    private String planNumber;
    @Schema(description = "入库方式：1数量2重量")
    @ExcelProperty("入库方式：1数量2重量")
    private String storageMethod;
    @Schema(description = "下挂人员", example = "24736")
    @ExcelProperty("下挂人员")
    private Integer hangingUid;

    @Schema(description = "上挂人员", example = "24736")
    @ExcelProperty("上挂人员")
    private Integer rackUid;

    @Schema(description = "客户名称", example = "张三")
    @ExcelProperty("客户名称")
    private String customerName;

    @Schema(description = "供方名称", example = "赵六")
    @ExcelProperty("供方名称")
    private String supplierName;

    @Schema(description = "产品名称", example = "王五")
    @ExcelProperty("产品名称")
    private String productName;

    @Schema(description = "规格型号")
    @ExcelProperty("规格型号")
    private String specification;

    @Schema(description = "产品单价", example = "8619")
    @ExcelProperty("产品单价")
    private String productPrice;

    @Schema(description = "加工工艺")
    @ExcelProperty("加工工艺")
    private String processingTechnology;

    @Schema(description = "预估单价", example = "1894")
    @ExcelProperty("预估单价")
    private BigDecimal estimatedUnitPrice;

    @Schema(description = "产品单面积")
    @ExcelProperty("产品单面积")
    private String productArea;

    @Schema(description = "返工单价", example = "12822")
    @ExcelProperty("返工单价")
    private BigDecimal reworkUnitPrice;

    @Schema(description = "产品单重")
    @ExcelProperty("产品单重")
    private String productSingleWeight;

    @Schema(description = "计费方式")
    @ExcelProperty("计费方式")
    private String billingMethod;

    @Schema(description = "产品材质")
    @ExcelProperty("产品材质")
    private String productMaterial;

    @Schema(description = "销售收容数")
    @ExcelProperty("销售收容数")
    private String salesFigures;

    @Schema(description = "是否含税")
    @ExcelProperty("是否含税")
    private String taxIncluded;

    @Schema(description = "适用挂具")
    @ExcelProperty("适用挂具")
    private String rack;

    @Schema(description = "挂具数量")
    @ExcelProperty("挂具数量")
    private Integer rackNumber;

    @Schema(description = "电压")
    @ExcelProperty("电压")
    private String voltage;

    @Schema(description = "膜厚要求")
    @ExcelProperty("膜厚要求")
    private String filmThickness;

    @Schema(description = "单挂数量")
    @ExcelProperty("单挂数量")
    private Integer singleHangingQuantity;

    @Schema(description = "链速")
    @ExcelProperty("链速")
    private String chainSpeed;

    @Schema(description = "包装方式")
    @ExcelProperty("包装方式")
    private String packagingMethod;

    @Schema(description = "分组")
    @ExcelProperty("分组")
    private String subgroup;

    @Schema(description = "图片")
    @ExcelProperty("图片")
    private String picture;

    @Schema(description = "订单交期")
    @ExcelProperty("订单交期")
    private LocalDateTime orderDeliveryTime;

    @Schema(description = "白件数量")
    @ExcelProperty("白件数量")
    private BigDecimal whiteItemsNum;

    @Schema(description = "黑件数量")
    @ExcelProperty("黑件数量")
    private BigDecimal blackItemsNum;

    @Schema(description = "在库数量")
    @ExcelProperty("在库数量")
    private BigDecimal quantityStock;

    @Schema(description = "期初数量（每月月初剩余的白件数量）")
    @ExcelProperty("期初数量")
    private BigDecimal initialQuantity;

    @Schema(description = "入库数量")
    @ExcelProperty("入库数量")
    private BigDecimal inventoryQuantity;

    @Schema(description = "上挂数量（总量）")
    @ExcelProperty("上挂数量")
    private BigDecimal rackingQuantity;

    @Schema(description = "下挂数量（总量）")
    @ExcelProperty("下挂数量")
    private BigDecimal hangingQuantity;
    @Schema(description = "上挂数量（当月）")
    @ExcelProperty("上挂数量")
    private BigDecimal rackingQuantityMonth;

    @Schema(description = "下挂数量（当月）")
    @ExcelProperty("下挂数量")
    private BigDecimal hangingQuantityMonth;
    @Schema(description = "上挂数量（当天）")
    @ExcelProperty("上挂数量")
    private BigDecimal rackingQuantityDay;

    @Schema(description = "下挂数量（当天）")
    @ExcelProperty("下挂数量")
    private BigDecimal hangingQuantityDay;

    @Schema(description = "成品库数量")
    @ExcelProperty("成品库数量")
    private BigDecimal finishedProductNum;

    @Schema(description = "销售数量")
    @ExcelProperty("销售数量")
    private BigDecimal salesVolumes;

    @Schema(description = "成品不良数量")
    @ExcelProperty("成品不良数量")
    private BigDecimal cpDefectNum;

    @Schema(description = "白皮不良数量")
    @ExcelProperty("白皮不良数量")
    private BigDecimal bpDefectNum;

    @Schema(description = "是否退回")
    @ExcelProperty("是否退回")
    private String shouldReturn;
    @Schema(description = "备注")
    private String remarks;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
    @ExcelProperty("更新时间")
    private LocalDateTime updateTime;
    @ExcelProperty("更新人id")
    private String updater;
    @ExcelProperty("更新人名称")
    private String updaterName;
    @Schema(description = "下挂人员名称", example = "24736")
    private String hangingUidName;

    @Schema(description = "上挂人员名称", example = "24736")
    private String rackUidName;


    @Schema(description = "附属物")
    private List<WorkAppendageSaveReqVO> appendageSaveReqVOS;

}
